package com.cykj.pos.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cykj.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 快捷支付广发卡绑定对象 biz_merchant_epsp_binding
 *
 * @author weijianbo
 * @date 2023-03-22
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
@TableName("biz_merchant_epsp_binding")
public class BizMerchantEpspBinding implements Serializable {

    private static final long serialVersionUID=1L;


    /** $column.columnComment */
    @TableId(value = "id")
    private Long id;

    /**商户号*/
    private String merchantCode;

    /** 易票联商户号 */
    @Excel(name = "易票联商户号")
    private String customerCode;

    /**分账商户编号 无意义 但必填 随机数*/
    private String memberId;

    /** 流水号 */
    @Excel(name = "流水号")
    private String mchtOrderNo;

    /**姓名*/
    private String userName;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private String phoneNum;

    /** 交易类别“01 快捷支付(默认)、02 代收” */
    @Excel(name = "交易类别“01 快捷支付(默认)、02 代收”")
    private String transType;

    /** 证件类型 固定01 身份证 */
    @Excel(name = "证件类型 固定01 身份证")
    private String certificatesType;

    /** 证件号码 */
    @Excel(name = "证件号码")
    private String certificatesNo;

    /** 绑定交易卡号 */
    @Excel(name = "绑定交易卡号")
    private String bankCardNo;

    /** debit：储蓄卡
     credit：信用卡
     */
    @Excel(name = "debit：储蓄卡 credit：信用卡 ")
    private String bankCardType;

    /** 有效期(信用卡必填 yymm) */
    @Excel(name = "有效期(信用卡必填 yymm)")
    private String expired;

    /** CVN 码  */
    @Excel(name = "CVN 码 ")
    private String cvn;

    /** true：绑交易卡，需要短信确认。false：绑结算卡，不需要短信确认。 */
    @Excel(name = "true：绑交易卡，需要短信确认。false：绑结算卡，不需要短信确认。")
    private Boolean isSendIssuer;

    /** 0000：成功 */
    @Excel(name = "0000：成功")
    private String returnCode;

    /** 处理失败的原因 */
    @Excel(name = "处理失败的原因")
    private String returnMsg;

    /** true：已开通
    false：未开通 */
    @Excel(name = "true：已开通  false：未开通")
    private String isOpen;

    /** 绑定时间 */
    @Excel(name = "绑定时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date bindingTime;

    /** 协议号 (绑定的ID) */
    @Excel(name = "协议号 (绑定的ID)")
    private String protocol;

    /** 绑定返回的流水号, 用于短信确认 */
    @Excel(name = "绑定返回的流水号, 用于短信确认")
    private String smsno;

    private String nonceStr;

    @TableField(exist = false)
    private String smsCode;

    private String province;
    private String city;
    private String area;


    @TableField(exist = false)
    private Map<String, Object> params = new HashMap<>();
}
